package sz.szsmk.citizencard.mvp.contract;

import sz.szsmk.citizencard.model.network.bean.response.BaseBean;
import sz.szsmk.citizencard.model.network.bean.response.CloudFlashRes;
import sz.szsmk.citizencard.model.network.bean.response.GetOrderOpenidRes;
import sz.szsmk.citizencard.model.network.bean.response.GetUrlRes;
import sz.szsmk.citizencard.model.network.bean.response.HomeAllfunResponse;
import sz.szsmk.citizencard.model.network.bean.response.HomeHeadFuncResponse;
import sz.szsmk.citizencard.model.network.bean.response.HomeWeathRes;
import sz.szsmk.citizencard.model.network.bean.response.IUserInfo;
import sz.szsmk.citizencard.model.network.bean.response.OneWordRes;
import sz.szsmk.citizencard.model.network.bean.response.QueryCitizenCardRes;
import sz.szsmk.citizencard.model.network.bean.response.QueryPageAdresponse;
import sz.szsmk.citizencard.model.network.bean.response.QueryPageResourceRes;
import sz.szsmk.citizencard.model.network.bean.response.QueryUserCardResponse;
import sz.szsmk.citizencard.model.network.bean.response.SeleciUserAuthRes;
import sz.szsmk.citizencard.model.network.bean.response.SplashResponse;
import sz.szsmk.citizencard.ui.base.IBaseContact;

/**
 * Copyright (c)2018
 * author: zdh
 * created on: 2018/6/4 19:59
 * description:
 */
public interface IHomeContact {

    interface IHomePresenter<T extends IBaseContact.IBaseView> extends IBaseContact.IBasePresenter {
        void getUserInfo();

        //获取头部应用
        void queryHeadFunc();

        //获取所有应用
        void queryAllFunc();

        //获取启动广告
        void queryMainAd();

        //获取页面广告
        void queryPageAd();

        //记录访问应用
        void recordUserFunc();

        void queryPageResource(int i);

        void queryUserCard();

        void queryOneWordAd();

        void getToken(String refresh_token);

        void checkSuccessOrderStatus(String access_token);

        //获取即时天气
        void getWeathGeneral();

        void getGetOrderId(String type, String url);

        void getUrl();

        void selectUserAuth(String type);

        void queryCitizenCard();

        void userBehaviorBrowse(int id);
    }

    interface IHomeView extends IBaseContact.IBaseView {
        // 获得数据失败
        void updataError(BaseBean response);

        void getUserInfoSucc();

        void queryOneWordAdSucc(OneWordRes response);

        void queryPageResourceSucc(QueryPageResourceRes response, int area_id);

        void queryPageResourceFail();

        void queryOneWordAdFail();

        void checkSuccessOrderStatusSucc(String orderStatus);

        void checkSuccessOrderStatusFail(CloudFlashRes cloudFlashRes);

        void queryAllFuncSucc(HomeAllfunResponse response);

        void queryHeadFuncSucc(HomeHeadFuncResponse response);

        void queryMainAdSucc(SplashResponse response);

        void queryPageAdSucc(QueryPageAdresponse response);

        void queryUserCardSucc(QueryUserCardResponse response);

        void queryUserCardFail(String message);

        void getTokenSucc();

        void getTokenFail();

        void getWeathGeneralSucc(HomeWeathRes response);

        void getWeathGeneralFail();


        void getUserInfoSucc(IUserInfo response);

        void getUserInfoFail(IUserInfo response);

        void getUrlSucc(GetUrlRes response);

        void getUrlFail(GetUrlRes response);

        void selectUserAuthFail();

        void selectUserAuthSucc(SeleciUserAuthRes response, String type);

        void getGetOrderIdSucc(GetOrderOpenidRes response, String s, String type);

        void getGetOrderIdFail();

        void queryCitizenCardFail();

        void queryCitizenCardSucc(QueryCitizenCardRes response);

    }

}
